{
 "cells": [
  {
   "cell_type": "markdown",
   "id": "b955bab5",
   "metadata": {},
   "source": [
    "## Subspace Interventions"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "id": "2dae33d4",
   "metadata": {},
   "outputs": [],
   "source": [
    "__author__ = \"Zhengxuan Wu\"\n",
    "__version__ = \"11/28/2023\""
   ]
  },
  {
   "cell_type": "markdown",
   "id": "6e2ac478",
   "metadata": {},
   "source": [
    "### Overview\n",
    "\n",
    "Subspace of the basis may be used to represent different orthogonal causal variables. In other words, each column or each partition of columns may be used to represent different high-level causal model. In this tutorial, we want to illustrate how to setup the intervenable to do this.\n",
    "\n",
    "We introduce a new concept of **subspace** intervention. For the intervention, you can specify if you only want to intervene on a subspace rather than the fullspace.\n",
    "\n",
    "Then, you can intervene on different subspaces given your examples in a batch, and test for different counterfactual behaviors. Accordingly, you can also train different subspaces to target different counterfactual behaviors using DAS."
   ]
  },
  {
   "cell_type": "markdown",
   "id": "2deea8d3",
   "metadata": {},
   "source": [
    "### Set-up"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "id": "ed1e62ce",
   "metadata": {},
   "outputs": [],
   "source": [
    "try:\n",
    "    # This library is our indicator that the required installs\n",
    "    # need to be done.\n",
    "    import pyvene\n",
    "\n",
    "except ModuleNotFoundError:\n",
    "    !pip install git+https://github.com/stanfordnlp/pyvene.git"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "id": "fcfde6a4",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "loaded model\n"
     ]
    }
   ],
   "source": [
    "import pandas as pd\n",
    "from pyvene import embed_to_distrib, top_vals, format_token\n",
    "from pyvene import (\n",
    "    IntervenableModel,\n",
    "    RotatedSpaceIntervention,\n",
    "    RepresentationConfig,\n",
    "    IntervenableConfig,\n",
    ")\n",
    "from pyvene import create_gpt2\n",
    "\n",
    "%config InlineBackend.figure_formats = ['svg']\n",
    "from plotnine import (\n",
    "    ggplot,\n",
    "    geom_tile,\n",
    "    aes,\n",
    "    facet_wrap,\n",
    "    theme,\n",
    "    element_text,\n",
    "    geom_bar,\n",
    "    geom_hline,\n",
    "    scale_y_log10,\n",
    ")\n",
    "\n",
    "config, tokenizer, gpt = create_gpt2()"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "5e68d4a2",
   "metadata": {},
   "source": [
    "### Subspace alignment config\n",
    "You just need to specify your intial subspace partition in the config.\n",
    "\n",
    "Currently, only DAS-related interventions are supporting this. But the concept of subspace intervention can be extended to other types of interventions as well (e.g., vanilla intervention where swapping a subset of activations)."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "id": "5906aebd",
   "metadata": {},
   "outputs": [],
   "source": [
    "def simple_subspace_position_config(\n",
    "    model_type, intervention_type, layer, subspace_partition=[[0, 384], [384, 768]]\n",
    "):\n",
    "    config = IntervenableConfig(\n",
    "        model_type=model_type,\n",
    "        representations=[\n",
    "            RepresentationConfig(\n",
    "                layer,  # layer\n",
    "                intervention_type,  # repr intervention type\n",
    "                \"pos\",  # intervention unit\n",
    "                1,      # max number of unit\n",
    "                subspace_partition=subspace_partition,\n",
    "            )\n",
    "        ],\n",
    "        intervention_types=RotatedSpaceIntervention,\n",
    "    )\n",
    "    return config\n",
    "\n",
    "\n",
    "base = tokenizer(\"The capital of Spain is\", return_tensors=\"pt\")\n",
    "sources = [tokenizer(\"The capital of Italy is\", return_tensors=\"pt\")]"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "eafda98f",
   "metadata": {},
   "source": [
    "### Patch Patching on the First Subspace of Position-aligned Tokens\n",
    "We path patch on the subspace (indexing from 0 to 384) of two modules on each layer:\n",
    "- [1] MLP output (the MLP output will be from another example)\n",
    "- [2] MHA input (the self-attention module input will be from another module)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "id": "2058f96f",
   "metadata": {},
   "outputs": [],
   "source": [
    "# should finish within 1 min with a standard 12G GPU\n",
    "tokens = tokenizer.encode(\" Madrid Rome\")\n",
    "\n",
    "data = []\n",
    "for layer_i in range(gpt.config.n_layer):\n",
    "    config = simple_subspace_position_config(\n",
    "        type(gpt), \"mlp_output\", layer_i\n",
    "    )\n",
    "    intervenable = IntervenableModel(config, gpt)\n",
    "    for k, v in intervenable.interventions.items():\n",
    "        v.set_interchange_dim(768)\n",
    "    for pos_i in range(len(base.input_ids[0])):\n",
    "        _, counterfactual_outputs = intervenable(\n",
    "            base,\n",
    "            sources,\n",
    "            {\"sources->base\": ([[[pos_i]]], [[[pos_i]]])},\n",
    "            subspaces=[[[0]]],\n",
    "        )\n",
    "        distrib = embed_to_distrib(\n",
    "            gpt, counterfactual_outputs.last_hidden_state, logits=False\n",
    "        )\n",
    "        for token in tokens:\n",
    "            data.append(\n",
    "                {\n",
    "                    \"token\": format_token(tokenizer, token),\n",
    "                    \"prob\": float(distrib[0][-1][token]),\n",
    "                    \"layer\": f\"f{layer_i}\",\n",
    "                    \"pos\": pos_i,\n",
    "                    \"type\": \"mlp_output\",\n",
    "                }\n",
    "            )\n",
    "\n",
    "    config = simple_subspace_position_config(\n",
    "        type(gpt), \"attention_input\", layer_i\n",
    "    )\n",
    "    intervenable = IntervenableModel(config, gpt)\n",
    "    for k, v in intervenable.interventions.items():\n",
    "        v.set_interchange_dim(768)\n",
    "    for pos_i in range(len(base.input_ids[0])):\n",
    "        _, counterfactual_outputs = intervenable(\n",
    "            base,\n",
    "            sources,\n",
    "            {\"sources->base\": ([[[pos_i]]], [[[pos_i]]])},\n",
    "            subspaces=[[[0]]],\n",
    "        )\n",
    "        distrib = embed_to_distrib(\n",
    "            gpt, counterfactual_outputs.last_hidden_state, logits=False\n",
    "        )\n",
    "        for token in tokens:\n",
    "            data.append(\n",
    "                {\n",
    "                    \"token\": format_token(tokenizer, token),\n",
    "                    \"prob\": float(distrib[0][-1][token]),\n",
    "                    \"layer\": f\"a{layer_i}\",\n",
    "                    \"pos\": pos_i,\n",
    "                    \"type\": \"attention_input\",\n",
    "                }\n",
    "            )\n",
    "df = pd.DataFrame(data)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "id": "f39d0bd5",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAABQAAAAPACAYAAABq3NR5AAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjcuMywgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/OQEPoAAAACXBIWXMAAB7CAAAewgFu0HU+AADtk0lEQVR4nOzdeXxU1f3/8ffMZJ1JQgJhDyAQFWUXi4pWgSjYihEEUSGCli5aF7T+qlZF/Vql1AWhSrWCihgpooIErCiyKCIgssqmAmISQUJMCNlJZu7vj5gxIZmssyQ3r+f3cftN5t577udOkBPec849FsMwDAEAAAAAAAAwJWugCwAAAAAAAADgOwSAAAAAAAAAgIkRAAIAAAAAAAAmRgAIAAAAAAAAmBgBIAAAAAAAAGBiBIAAAAAAAACAiREAAgAAAAAAACZGAAgAAAAAAACYGAEgAAAAAAAAYGIEgAAAAAAAAICJEQACAAAAAAAAJkYACAAAAAAAAJgYASAAAAAAAABgYgSAAAAAAAAAgIkRAAIAAAAAAAAmRgAIAAAAAAAAmBgBIAAAAAAAAGBiBIAAAAAAAACAiREAAgAAAAAAACZGAAgAAAAAAACYGAEgAAAAAAAAYGIEgAAAAAAAAICJEQACAAAAAAAAJkYACAAAAAAAAJgYASAAAAAAAABgYgSAAAAAAAAAgIkRAAIAAAAAAAAmRgAIAAAAAAAAmBgBIAAAAAAAAGBiBIAAAAAAAACAiREAAgAAAAAAACZGAAgAAAAAAACYGAEgAAAAAAAAYGIEgAAAAAAAAICJEQACAAAAAAAAJkYACAAAAAAAAJgYASAAAAAAAABgYkGBLgDe8c033wS6BAAAWpSzzjor0CUAAAAAdUIACAAA4Cd8YAcAgP/xoR3AFGAAAAAAAADA1AgAAQAAAAAAABMjAAQAAAAAAABMjAAQAAAAAAAAMDECQAAAAAAAAMDECAABAAAAAAAAEyMABAAAAAAAAEyMABAAmom7775bw4YN0/z58xvcxg033KBhw4Zp5cqV9T53x44dGjZsmIYNG9bg6wMAAAAA/C8o0AUAQCDMnz9fr7/+uvv75557TgMGDPB4fFFRkcaNG6f8/HxJUv/+/TVr1iwfVwkAAGpyen9eLiQkRDExMTrrrLM0YsQIXXLJJQGoDgCApoMAEAAkffjhhzUGgOvXr3eHf81Zp06dFBISIofDEehSAADwGqvVqlatWrm/z8vL07Fjx3Ts2DGtX79eCQkJevDBB2W1MgEKANAyEQACaNFiY2OVnZ2tTz/9VFOnTlVYWFi1x5VPmW3fvr2OHTvmzxK9aubMmYEuAQAAr2vbtq0WLVrk/t4wDKWlpenll1/Whg0btHr1avXr10+JiYkBrBIAgMDhIzAALVqrVq00ePBgFRQU6NNPP632mIyMDO3YsUNRUVG64IIL/FwhAACoL4vFoq5du+rRRx9V165dJZWN9gcAoKViBCCAFm/kyJHauHGjPvzwQ40YMaLK/o8++kgul0sJCQk1Th0qKirS+vXrtXnzZn333Xc6fvy4ioqK1Lp1a/Xr10/jxo3TWWedVWMt69at05IlS3TgwAFZrVadccYZuuaaa3TFFVfUeF75whzPPfecOnfurOTkZG3ZskWZmZnq2rWr5s2bJ6lsEZBjx47p/vvv15VXXlmlnezsbL3++uvauHGjsrOzFRMTo8GDB2vSpEk1Xh8AgKYoODhYAwcOVGpqqg4fPuzxuE2bNmn58uXat2+fcnNzFRkZqXPOOUfXXHONBg8eXO05d999t3bu3KnJkycrKSlJixcv1qpVq3T06FFFRkZq8ODB+t3vfqc2bdpIkn744QclJydr69atOnHihDp06KCrrrpK1113XY2/X3z99ddasmSJdu7cqaysLIWEhKhr164aPny4EhMTFRIS0qj3CADQMhAAAmjxLrroIkVGRmrHjh3KyMhQu3btKu0vHzEwcuRIrVq1ymM769at0z//+U9JZc8iKn/O3rFjx7Rq1SqtWbNG9913X7UhoyTNmTNH77zzjqSykQsOh0P79u3Tnj17dODAgTrdS1pamh577DHl5OQoLCxMNputTudJUmpqqu655x5lZWVJkkJDQ3Xy5EmtWLFCGzZs0JQpU+rcFgAATYVhGJIkl8tV7b7nnntOy5cvl1TWf9vtduXk5Ojzzz/X559/rtGjR+uuu+6SxWKptv3S0lL99a9/1Y4dO9xhXGZmpv73v/9p165deuGFF/TDDz/o/vvvV15enhwOh0pLS5WWlqaXXnpJx48f1x133FFt26+//rpef/119z3Y7XYVFhZq37592rdvnz766CM9/fTTlZ5/CABAdQgAAbR4ISEhGjZsmFJSUvTRRx8pKSnJvW/37t1KT09Xt27ddPbZZ9cYAEZEROiGG27Qr3/9a8XHxyskJESGYSg9PV1vvPGGVq1apWeffVb9+/dX+/btK527Zs0ad/iXmJioW265RdHR0Tp58qSSk5O1ePHiOi3c8eKLL6pjx4564okn1KdPH0llIw5qU1paqv/7v/9TVlaW2rZtq7/+9a86//zzZbFYtGPHDj311FN68cUXa20HAICmpKSkRNu3b5dUthDW6d5++213+HfjjTfqxhtvVGRkpE6ePKk333xTixcv1nvvvae4uDiNHTu22mssW7ZMISEhmj59ui644AIZhqGNGzfqH//4h9LT0/Xaa69p06ZN6tu3r+644w516tRJ+fn5evnll5WSkqIlS5bo6quvVrdu3aq0O3/+fEVFRenmm29WQkKCoqKi3Pf0/PPP69tvv9WMGTP0j3/8w8vvHADAbHgGIACobHSfVDbdt6LyxT/K99fkkksu0Z/+9Cede+657hEAFotFXbp00d/+9jedf/75OnXqlLvNcoZh6LXXXpMkXXbZZbrnnnsUHR0tSYqKitKf//xnXXnllXVahdhms+npp592h3+S1Llz51rPW7t2rQ4dOiSr1arp06frV7/6lXukw4ABAzRjxgydOnWq1nYAAGgKDMNQamqqHn/8caWlpUlSlRH4RUVFeuONNyRJY8aM0R//+EdFRkZKKut/b7vtNo0aNUqStGDBAhUXF1d7rby8PE2bNk0XXXSRrFarbDabLrnkEl1//fWSfgkI//73v7tDSIfDoalTp6pz584yDEOffPJJpTbz8/M1d+5cBQUFacaMGRozZoyioqIklU1rHjx4sGbMmKGwsDBt2rRJ33zzjTfeNgCAiREAAoCkc889V127dlVaWpp2794tSSouLta6detktVo9TtutK4vF4l5ApLz9cgcPHlR6erokaeLEidWeX3FUYk1GjBih1q1b17u+8n94XHjhhYqPj6+yv2vXrho6dGi92wUAwB+OHz+ua6+91r2NHDlSkydP1meffSap7HEfY8aMqXTOl19+qby8PFmtVo/97KRJk2S1WnXy5El9+eWX1R7Tu3dvDRgwoMrrgwYNcn89fvz4Ko/lsFqt7vMOHTpUad8nn3yi/Px89evXT+ecc0611+3cubN7n6faAAAoxxRgAPjZyJEjNXfuXH344Yfq06ePPvvsM+Xn52vw4MHuB3jX5vjx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deDAAR08eFAHDhxQTk6OJOnJJ59U375969TOxo0b9cEHH+jgwYMqLi5WbGysfvWrX+m6665TVFSUL28BAAAAAAAALRwBYA02b96s2bNnN6qNl156Sf/73/8kSVarVaGhoTpy5IiWLVumTz75RE8++aS6dOnijXIBAAAAAACAKggAaxETE6OePXsqPj5enTp10syZM+t87ocffqj//e9/slgsmjhxoq655hqFhobqu+++08yZM/X999/riSee0AsvvKDgYFY7AgAAAAAAgPcRANZg6NChSkhIcH+fl5dX53NLSkq0cOFCSdJvf/tbjR8/3r2ve/fumjZtmm6//XYdPXpUq1at0m9/+1vvFQ4AAAAAAAD8rEUEgHl5edqwYYO2bdum9PR0/fTTTyotLVWbNm3Uv39/jR49Wp06dapyns1ma/A1d+3apezsbFksFl177bVV9rdr106XXnqpVq1apXXr1hEAAgAAAAAAwCdaxCrAKSkpmjNnjjZu3KgjR47IZrPJ6XTq6NGjWrlype6++27t2LHDq9fctWuXJKlLly5q27ZttccMHDhQkvT111+rqKjIq9cHAAAAAAAApBYyArB169aaOHGiBg8erK5du7oDwMOHDys5OVlbt27Vs88+q7lz5yosLMwr10xLS5MkdevWzeMx5fsMw1B6erri4+O9cm0AAAAAAACgXIsYAXjllVfq+uuvV/fu3d3Tem02m3r27KkHH3xQXbp0UU5OjjZs2OC1a2ZlZUkqCx89qbgvOzvba9cGAAAAAAAAyrWIALAmwcHBGjBggCRp3759Xmu3fEpvaGiox2Mq7isoKPDatQEAAAAAAIByLWIKsCSlp6drxYoV2rNnjzIyMlRUVCTDMCodUz5qDwAAAAAAADCLFhEAfvrpp5o1a5ZKS0slSRaLRXa7XcHBwZLKRusVFRWpuLjYa9csf5ZgTW1W3Ge322tsLzk5WQsXLvS4f9y4cZo8eXI9q6xZToFDOu7VJgEACJhWrVpV+fDP32JiYrzepiPC4fU2AQAIlKbQXwNmZPoAMCcnR3PmzFFpaal69+6tSZMmKT4+3h3+SWXh2uLFi736l0zr1q116NChGkcVVtxX2z8I8vPzlZGR4XF/QUGB+/mG3mK1tPgZ4gAAE7FaA9+vebuvliQL/TUAwESaQn8NmJHpA8CtW7eqsLBQYWFhmjZt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devWysrK0vTp0/WnP/1JvXr1ktVqVXZ2tpYuXaovvvhCERERuuGGGwJ0JwAAAAAAADA7AkAfCQsL0yOPPKLp06fru+++0wMPPOBeBbiwsFDBwcG65JJLlJSUpI4dOwa6XAAAAAAAAJgUi4D4UI8ePfTkk0+qV69ekiSn06nCwkL316dOnXIvJAIAAAAAAAD4AiMAfWjVqlV68cUXFRUVpXvuuUd9+/aV3W5XamqqFi1apC+++EK7d+/W448/rrPOOivQ5QIAAAAAAMCECAB9ZP/+/Xr++ecVEhKiJ554QnFxce59vXr10qOPPqqHH35YX331lV5++WU988wzNbaXnJyshQsXetw/btw4TZ482Wv1S1JOgUM67tUmAQAImFatWskwjIDWEBMT4/U2HREOr7cJAECgNIX+GjAjAkAfSUlJkSSdf/75lcK/chaLRddcc42++uorffPNN8rOzq7xHwX5+fnKyMjwuL+goEA2m63xhVdgtTBDHABgHlZr4Ps1b/fVkmShvwYAmEhT6K8BMyIA9JG0tDRJUvv27T0e06FDB/fXx44dqzEAdDgcateuncf9drtdTqezAZV65jJcXm0PAIBAcrlcXh1R0JAwz9t9tSQZ9NcAABPxdn8t+eYDOKC5IQD0EYvFIknKzMz0eMzx47/Mr7Xb7TW2l5SUpKSkJI/7MzMzlZ2dXc8qa5Zfku/V9gAACKScnByvBnCxsbH1PsfbfbUk5efRXwMAzMPb/bXUsD4bMBvG1vpI9+7dJUlffvllpaCvopUrV0oqG93XuXNnv9UGAAAAAACAloMA0Ed+85vfyGKxqLCwUI899ph27typkpISSWXTfWfPnq3NmzdLkq666iqGJAMAAAAAAMAnmALsI7169dKUKVP06quvKi0tTdOmTZPValVISIiKiorcx11wwQW64YYbAlgpAAAAAAAAzIwRgD6UmJioZ599VldccYU6d+6soKAglZaWKiYmRueff77uu+8+PfTQQwoKIocFAAAAAADN2/z582WxWGSxWDR//vxAl4MKSJ4aISEhQQkJCTUe07NnT915551+qggAAAAAAACojBGAAAAAAAAAgIkRAAIAAAAAAAAmRgAIAAAAAAAAmBgBIAAAAAAAAGBiBIAAAAAAAAABtm7dOvcKuo899pgk6euvv9add96ps88+Ww6HQzExMbrwwgv13HPPqbi42GNbZ5xxhiwWi8444wxJUnFxsebMmaOhQ4eqY8eOstls7n0VFRYW6oUXXtAVV1yhjh07KiQkRG3atNGvfvUrPfzwwzpy5Ei97+vLL7/U7373O/Xs2VPh4eGKjY3VsGHD9Morr8jlctW7PTQMqwADAAAAAAA0MW+99ZZ+97vfqaCgwP1aQUGBNm/erM2bN+vll1/WypUr1a1btxrbOXz4sK6++mrt3r27xuO2bNmisWPHKi0trdLrWVlZysrK0pdffqnnnntOzz//vH73u9/V6R5mzZql//f//p+cTqf7taKiIq1bt07r1q3Tq6++qhUrVigmJqZO7aHhCAABAAAAAACakK1bt2rGjBkqKSnRhAkTlJCQoPDwcO3Zs0evvvqqjh49qv3792vYsGHavn27WrVqVW07xcXFuvbaa7V7925deOGFGjdunOLi4pSVlaU9e/a4j9u1a5eGDRum/Px8SdK5556rm266Sd27d1dWVpbee+89ffTRRyooKNCUKVNkGIamTJlS4z0sX75cS5cuVUhIiKZMmaKLL75YNptNW7du1auvvqqcnBx9/vnn+s1vfqPPPvtMQUFEVL7EuwuPnEZpoEsA0ITYLE61DsmTZAl0KaYTYSuS05B4b32n1FUS6BJ8puQU/TWA0xiGDMOQxUK/4m2GYQS6BFOjT/vFihUrZLfbtXLlSg0dOrTSvv/3//6ffvvb32rjxo367rvvdP/99+ull16qtp0ff/xRP/74o2bMmKH777+/2mNcLpcmTpzoDv9+//vf68UXX6wUyN1222165ZVX9Ic//EGGYeiuu+5SQkJCtdOIyy1ZskTt2rXT6tWr1adPH/frEydO1F/+8hcNHz5c3377rTZv3qxnnnlGDzzwQB3fHTQEASA84/cFABW0Ci7WBW1SA12GKZUaFhW6QgNdhqkZPPYYQEvy8zPE4H0Wi0VEgL7Du1vZjBkzqoR/khQdHa23335bvXr1Ul5enubPn6+///3vatu2bbXtXHPNNR7DP0l6//333dOD+/Xrp5deekk2m63KcVOmTNGXX36pl156SQUFBZo9e7aee+65Gu9h3rx5lcK/cnFxcXrrrbd0/vnny+VyadasWfrLX/6ikJCQGttDw/HbMDyykQ8DAEzCZjFvnxYcYt57AwC0LEEhwYEuocmIjo7WH/7wB4/7O3furIkTJ0oqm+a7fPlyj8feddddNV5ryZIl7q/vvffeasO/cg888ID7A4aK51WnV69euvrqqz3uHzhwoK644gpJ0rFjx/TZZ5/V2B4ahwAQAAAAAACgCbnkkksUFhZW4zGXX365++svvvii2mNsNpuGDBlSYzubN292fz1ixIgaj+3WrZt69eolSUpNTdXRo0frVF9djvF0D/AOAkAAAAAAAIAm5Mwzz6zXMUeOHKn2mDZt2tQaJJaHeJGRkerQoUOt1z3rrLOqnFtbfXU5xtM9wDsIAAEAAAAAAJoQh8NRr2Nyc3OrPSY8PLzWdsrPrcs1JSkiIqLW69a1vbrcA7yDh8b4mGEY+uSTT7R27VodOnRIeXl5CgkJUfv27TVw4EAlJiaqTZs2gS4TAAAAAAA0EeUr8tb1mMjIyAZfKzIyUidOnKjTNSUpLy+vTtf15z2gdgSAPnTq1ClNnz5d27Ztc79mt9tVVFSkw4cP6/Dhw1q5cqUeeugh9evXL4CVAgAAAACApuLAgQP1OqZTp04NvlbHjh114sQJ5ebm6tixY2rfvn2Nx3/zzTd1uq4/7wG1YwqwDy1evNgd/t1444168803tWjRIr377rv6v//7P3Xs2FGFhYV6+umnVVxcHOBqAQAAAABAU7B+/fpac4KPP/7Y/fUFF1zQ4GtVPPejjz6q8djU1FTt379fktS1a9canxm4atWqWq/trXtA7QgAfWjdunWSpOHDh+vGG290D2e12WwaOHCg7rvvPklSTk6O9uzZE6gyAQAAAABAE3LixAnNmzfP4/6jR4/qzTfflCSFhoZq1KhRDb7W2LFj3V8/++yzcjqdHo/95z//KcMwqpxXnf379+v999/3uH/nzp3ukLBDhw665JJL6lM26okpwHWQl5enDRs2aNu2bUpPT9dPP/2k0tJStWnTRv3799fo0aOrHaqanZ0tSYqPj6+23e7du8tms8npdKqoqMin9wAAAAAAAJqP+++/X3379tWll15a6fWTJ09q/Pjx7kUzbrnlFrVt27bB1/ntb3+rvn376quvvtLOnTt122236d///reCgipHRvPnz9dLL70kqezxZlOnTq217SlTpmjNmjU699xzK71+5MgRXX/99e6w8e6771ZwcHCD7wG1IwCsg5SUFC1atEhS2eg9u92u4uJiHT16VEePHtW6dev04IMPasCAAZXO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jrLn6hw7dkwlJSVV9q9Zs8bjCr7Dhw+XJKWlpWnbtm1V9mdlZenTTz+VVLYKMgAAAAAAaCksZaMAA7EZP2+un///z6/r581fdcB/fBIAtm/fXpJ04MCBep23detWSWWLZjQV/fv3l8ViUW5urmbNmuX+5L6wsFApKSmaM2eOIiMjPZ47aNAgSdLs2bO1detWdyj63Xff6cknn1RRUZEiIyN1zTXX+OeGAAAAAABA4BkB3CSVh32BrwP+4JMpwEOGDNHBgwf13nvv6eGHH67TOfn5+Xr77bdlsVh0ySWX+KKsBomLi1NiYqKWLVum9evXa/369XI4HCosLJTL5dLAgQN15plnavHixdWef++99+rhhx/WoUOH9H//938KCQlRUFCQCgoKJEkRERH629/+VmnREAAAAAAAYG6+WgW4ejWNtqtuH+mc2fhkBOB1110nSdq+fbteffXVOp1z2223uUfXTZw40RdlNdiUKVN0++23q0ePHgoODpbL5VKPHj30+9//Xo888kiNqxRFRETo6aef1u9+9zvFx8fLZrOptLRUnTt3VmJiop5//nn16dPHj3cDAAAAAAACz+LdzahpUz03D+14u2b4jU9GAI4aNUoXXnihNm3apFtvvVXHjh3TnXfeWe2x27dv18MPP6yVK1fKYrHoN7/5jQYPHuyLshpl5MiRGjlyZLX7JkyYoAkTJng8Nzg4WKNHj9bo0aN9VB0AAAAAAGhODHl7BKAfAjX/DVmEl/lkBKAkvfXWW+rQoYNKS0v18MMPq127drr77rvd+3/1q1+pY8eOOv/887Vy5UoZhqEuXbpo/vz5vioJAAAAAACgaahppF2DNvlh82a9DQssjx8/rnvvvVdnnnmmwsPDFRsbqxEjRui9995rUHvlSkpKNHPmTA0aNEhRUVGKiorS+eefr+eee67aRWElad26dbJYLHXevv/++0rnHz58uE7nvfPOO426N8lHIwClsoU8Nm/erOuvv16bNm1SUVGRUlNTZbGU/YC3bdsmo0JyfMEFF+jdd99tustzAwAAAAAAeAnrYNTfnj17NHz4cGVkZEiSIiMjdeLECa1atUqrVq3SXXfdpdmzZ9e73by8PF1++eXavHmzJCksLExS2WK1W7du1dtvv61Vq1bJ4XBUOi8kJMS9EK4nWVlZKikpUYcOHdS5c2ePx8XGxspms1W7r7yexvDZCECpLAT8/PPPtWzZMl177bVq06aNDMNwbxEREbrqqqu0ePFibdy4UZ06dfJlOQAAAAAAAE1DIEbc+X2r5f7qobi4WImJicrIyFCfPn20Y8cOnTx5UidPntQTTzwhi8Wif/3rX3rttdfq/aP405/+pM2bNys6OlpLlixRQUGBCgoKtGTJEkVHR2vjxo3685//XOW8IUOG6Mcff/S4fffdd7Lb7ZKkpKQkBQV5Hoe3ZcsWj+2MGjWq3vd0Op+NAKzo6quv1tVXXy1JKigo0IkTJxQREaGoqCh/XB4AAAAAAKBJ+To7U0YDp8E2H967v5dfflmHDh2S3W7X+++/r65du0qS7Ha7HnroIR09elRz5szRww8/rKSkJAUHB9ep3V27dum///2vJGnevHkaM2aMe9+YMWPkdDp13XXX6Y033tBf//rXei3kunTpUuXk5EiSbr755jqf5ws+HQFYHbvdrk6dOhH+AQAAAACAFuusVm399Ny+JrzVQ3JysiTpxhtvdId/Fd13332yWCw6cuSI1q5dW+d233zzTRmGofj4eF177bVV9o8dO1bx8fEyDEMLFy6sV83l61z86le/Uu/evet1rrf5JAD8+uuvfdEsAAAAAACAKVgU6Om5TWCro7y8PG3ZskWSdOWVV1Z7TNeuXXXOOedIklavXl3nttesWSNJGjlypHvdiko/J4tFI0aMqHe76enp7uMDPfpP8lEAeO6552r48OF66623PK6UAgAAAAAA0GL5aeScX/noXvbt2+deSLamKbjl+/bu3Vu3cg1D+/btq3O75cfWxYIFC+RyuRQaGqobb7yx1uPHjx+vmJgYhYaGKi4uTmPHjtX7779f5+vVxicBoGEY+uSTTzRhwgR17txZ999/vw4cOOCLS8GHnCoNdAkAAHiF0zBvn1Zyyrz3BgBoWUpPMYCozgI9dddbwWQdBwEePXrU/XVNC8iW76t4fE1yc3OVn59f53Zzc3OVl5dXp7Zff/11SdI111yjmJiYWo/fsmWLXC6XbDabfvjhBy1ZskSjRo3S+PHjderUqTpdsyY+WQTksssu0yeffCJJyszM1DPPPKNnnnlGw4YN06233qrRo0fXuPIJmoim/KkCAL8rctp0tChK3nyQL8qE24rVKTRH1cw4gJeEWgjJALQshmFUO5UNjcS/kXzKaHG/Z9ZvGmxDmvcJb/53UMe2KoZu5avqVqd8X25urk/aLW87IiKixnY3bNigb775RpJ0yy23eDwuLCxMf/7zn3XDDTdowIABioyMlCTt2bNH//znP/XGG2/o7bffVnR0tF5++eU63ZMnPknh1q5dq2+++Ub/+c9/tGDBAv3000/u19euXau2bdvqd7/7nf7whz+oe/fuvigBXmCzENIC+IVLVhW4QgNdhinZLC6F2wiofCnIat4+LTjEvPcGoOEI/3zEIkJAH2pxfZqvp/NWbLsxfyXwZ77eyhf/6NSpk6644gqPx3Xo0EFz5syp8nrv3r21YMECtW3bVjNnztS8efN077336uyzz25wTT77r+uss87Ss88+q3/84x965513NHfuXPeowIyMDP3zn//UU089pYSEBN16661KTEyUzWbzVTkAAAAAAABNyjv9Lm/QeeN2fVy/E/wQ4jXkXr7dvUeDBg2q9biKI+4KCgoUFRVV7XEFBQWS5B5JV992Pam4r7a2CwsLtXjxYknSpEmTGpV1Pf7443rxxRdVWFioFStWNCoA9MkzACsKCQnRhAkTtHbtWu3fv1/33HOP2rRpI8Mw5HK59PHHH2vcuHHq0qWLpk2bpu+//97XJQEAAAAAAARWY0I5rz2zzxK45//VQ8Xn8x05csTjceX7OnbsWKd2IyMj3SFgXdqteLwnS5Ys0cmTJyU1fvVfh8Oh3r17S5IOHTrUqLZ8HgBWVD4q8IcfflBycrIuvfRSGYYhwzD0448/avr06erZs6euuuoqpaSkyOVy+bO8BiksLNRrr72mP/3pTxo7dqwSExOVmJgY6LIAAAAAAEATZjQiNDMMi3c2l/fa8qVevXq5H22wZ88ej8eV7zv33HPr1K7FYtE555xT53bLj61J+fTfiy66qFEj9rwtIBPsy0cFTpgwQV9//bWefvppvfrqq+4wcOXKlVq5cqU6d+6sO++8U7fffnuND2MMpBkzZmj79u2Syh7e6HA43Pt+//vfKyMjo8bzf/vb3+rWW2/1aY0AAAAAAKDpGbt9td+v6Smqa+wgvobcy86b7qrTcRERERo8eLA2b96slStXauzYsVWOSU9P1969eyVJCQkJda5h+PDh2rJliz788EOPx3z00Ud1ajctLU1r1qyR1PjRf5KUn5/vDh8bu4aGX0cAnm7z5s166qmn9NZbb8lisbjT3PIgMD09XQ888IDi4+O1cuXKQJZardTUVHf498ADD2jx4sVasGCBFixYUOk4u92u6OjoaremGmwCAADg/7d35/FRlXf//99nJusMIQsBFcMOooAieIMVrQVihSpSENQaoqi4tGrV2y5ff6DeuJbaqqCmtUpbl4CIFiUuqBREuLkFEbCssogQKMEQErJOQjJzfn9QRkIyWWfmTE5ezz6mTuY655rPOcZcyXuu6xwAANo2o57/KcCj7naRZcqUKZKkN954Q/v376/T/tRTT8k0TXXt2lWjRo1qcr8ZGRkyDEO7du3SO++8U6d90aJF2rVrlwzD8NcQyKuvviqfz6f4+Hhdd911jb632cg00JkzZ8rj8cgwDI0bN67R/hoS9hmApaWlev311/XSSy9p8+bNkr4/4K5du+q2227T5ZdfrjfffFOvv/66ioqKdOjQIY0fP17/+7//q+HDh4e75IByc3MlHV8DPmLEiIDb3Xbbbc1KnwEAAAAAgM2F6Np5wQrvTu3HtPh2wLfffrtmz56tPXv2aNy4cXr99dd13nnnyePxaM6cOXrhhRckSY8//riio6Nr7duzZ0/t27dPU6dO9S/RPeG8887T9ddfr/nz52vatGlyOBz+S7vl5OTo1ltvlSTdcMMN/uvxBfLqq69KkiZOnKjExMRGj2nkyJEaM2aMxo0bpwEDBigq6nhMt23bNv3xj3/U3//+d0nStGnTdPbZZzfaX0PCFgCuWbNGL730khYuXCiPxyPpePBnGIbS09N155131roT8EUXXaQnn3xSTz/9tB599FF5vV499thjeu+998JVcqOqqqokSfHx8RZXAgAAAAAA2hTTOP4IdrdB7/EEa2cFxsbGKicnR6NHj9amTZs0ePBgdezYUeXl5fJ6vZKkX/7yl7r55pub3fdf/vIXffPNN1q7dq0mTJig+Ph4maapyspKScczqj/96U8N9vG///u/2r17tyQ1uYZ9+/ZpxowZmjFjhqKiopSYmCiPx1PrrsMZGRnKyspq9jGdKqQBYElJiX+235YtWyR9P9svOTlZN910k37+85+rX79+9e7vcrn00EMP6ciRI3ruuee0fv36UJbbZPPnz9eCBQv8X+fn59e68ce9997LjD8AAAAAABBYGO6eazcDBw7U5s2bNWvWLL333nvav3+/EhMTNXToUN11112aMGFCi/rt0KGD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ZVq7dq0kKS4uTtLx+0KsX79eb731lpYuXepfJVqfuLg4JSYm1tvW0DL0YLx3UzDtrAmmTZumu+66S71791Z0dLR8Pp969+6tW2+9VQ8//HC9s/eSkpJ0++2364c//KHS0tIUGxur8vJyxcTEqFevXho/fryef/55/fSnP7XgiAAAAAAAgJUMix+nzsazpIZmqKqq0vjx45Wfn69Bgwbpq6++UklJiUpKSvT444/LMAw999xz+vvf/97MnqU77rhDa9euVVJSkhYtWqSKigpVVFRo0aJFSkpK0ueff64777yzwT6uu+46HTp0qN7HihUrQvreTcEMwCYaM2aMxowZU29bRkaGMjIyar0WGxurcePGady4ceEoDwAAAAAAtCWRcBdgq9+/GV566SXt2bNHLpdLH3zwgbp37y5JcrlcmjFjhvLy8pSVlaUHH3xQmZmZde7hEMimTZv0xhtvSJLmzp2riRMn+tsmTpwor9era665Rq+//rp+85vfNLqctznC+d7MAAQAAAAAALCbU2f4NeERjGv0hUp2drYk6frrr/eHfyf77W9/K8MwdPDgQX366adN7nfevHkyTVN9+/bV1VdfXad90qRJ6tu3r0zT1Pz581t+ABa/NwEgAAAAAACAFUJ08w6jniW9TVFnmW6gYDDMNwEpKyvTunXrJEljx46td5vu3bvrnHPOkSQtW7asyX0vX75c0vGVn4ZR90wZhqHLL7+82f1G2nsTAAIAAAAAAIRZU2bktfQRkkAxFHU20fbt22X+5y4lDS2DPdG2bdu2JvVrmqa2b9/e5H5PbFufZcuWqV+/foqNjVViYqIuuOACPfTQQ/ruu+9C/t5NQQAIAAAAAADQFoRyNl6YZvO1RF5env95165dA253ou3k7RtSWlqq8vLyJvdbWlqqsrKyerc5cOCA9u7dK7fbrbKyMm3YsEGPP/64BgwYUO/svWC+d1MQAAIAAAAAAIRbhIVsrRbC4zk5+HK5XAG3O9FWWloakn7r63vo0KH605/+pH379qmqqkqFhYU6evSosrOzdcYZZ6iwsFATJkzQzp07g/7ezcFdgAEAAAAAAMKtkRCsqdfti3SRnlu21j333FPntYSEBE2ZMkWXXHKJhgwZoqKiIs2cOTPoNxFpDgJAAAAAAACAMPv2u0K9knFpi/a9ed7KIFfTen+f0vxj2bVtqy64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QUHI62xrHnzwQa1evVovv/yyXnrpJX366ae688471atXrzrb8nMDp2K8Di3G69BhzA4dxuvQYcwG0FwOqwsAGpOamiqPx6N9+/Y1e9+9e/eqoqKi0WsQ4fh1QFryQP1qamoUExMjhyPwj1m3263HHntMAwYMUGlpqR566CF9/fXXYayy7Qp0R8ATr7vd7gb3j4+PV3V1ddDrsoOLL75Yf/rTn/TjH/9Yu3bt0q9+9Sv99a9/JZhBoxivw4PxOvgYs0OH8Tq0GLMBNAczABHxhg0bppycHD3zzDN6+OGH1alTpybtd+TIET377LP+O4ihfomJiSopKdH999+v//qv/2rWvqWlpbrjjjtCVFnblpycrIKCApWWliohISHgdnFxcZo5c6Yee+wxbd68WTNnztSDDz4YxkrbpsTERB06dEiVlZWKi4tr9v4ej6fObAR8z+Vy6a677tKoUaP0wgsvKCcnR6tXr9att96qESNGWF0eIhTjdWgxXocOY3boMF6HHmM2gKYiAETEu+aaa7RixQrt27dPd955py699FINGTJEPXr0UEpKiv8TxKqqKhUWFio3N1cbNmzQypUrVVlZqaSkJE2ePNnio4hcffv21YYNG3Tw4MFGP4U9ldfrDVFVbV+vXr1UUFCgf/3rX7rkkksa3DY2NlYPP/ywnnjiCX311Vd69NFH5fP5wlRp29S1a1cdOnRI//73v9WnT59abfPnz29wqcvhw4dVXV2tlJSUUJfZ5g0YMEDPPfecFi5cqH/84x966qmndMEFF+iOO+7gDzLUwXgdWozXocOYHTqM1+HDmA2gMQSAiHgdO3bUE088occff1zfffedli5dqqVLlza6n2maOu200/Tggw8y6DWgT58+Wr9+PRdeD7LzzjtPX3zxhZYvX97oHxPS8etfPfjgg5o1a5a+/PJLSVyvpSF9+/bV+vXrtXXr1jp/UDT2h/HGjRslSf369QtZfXYSFRWljIwM/fCHP1RWVpa+/PJLbdmyRVdddZXVpSHCMF6HFuN16DBmhw7jdXgxZgNoCNcARJvQvXt3ZWVl6bbbbvNfcLmha9z069dPt912m7KystS9e3crS494J34Z2717t8WV2MtFF10kSdqwYYO+/fbbJu0THR2t6dOn+/dFYBdeeKHGjBmjDh06NHvfJUuWSDr+Bx+arlu3bpo1a5Z+8YtfyOFw+O/eCJyM8Tp0GK9DhzE7dBivrcGYDaA+hslVgdEGVVZWav/+/SoqKpLH45F0/CLBKSkpSktLa9E1RtqrsrIyrV27VpI0evRoPsEOooKCAvl8PnXo0EEul6vJ+/l8Pm3fvl2maWrQoEEhrLD98fl8/rsJpqSkKCqKifAtUVRUpFdffVWHDx+WJD3xxBMWV4RIxXgdPIzXocWYHVkYr4OHMRvACQSAAAAAAAAAgI2xBBgAAAAAAACwMQJAAAAAAAAAwMYIAAEAAAAAAAAbIwAEAAAAAAAAbIwAEAAAAAAAALAxAkAAAAAAAADAxggAAQAAAAAAABsjAAQAAAAAAABsjAAQAAAAAAAAsDECQAAAAAAAAMDGCAABAAAAAAAAGyMABAAAAAAAAGyMABAAAAAAAACwMQJAAAAAAAAAwMYIAAEAAAAAAAAbIwAEAAAAAAAAbIwAEAAAtDsrVqyQYRgyDEMzZ86UJO3YsUO//OUv1b9/f7ndbiUnJ+sHP/iBnn32WVVVVTXap8fj0QsvvKAf//jHOuOMMxQTE6NOnTpp2LBhevDBB3Xw4MFG+6iqqtJf/vIX/eQnP9GZZ56puLg4uVwude/eXUOHDlVmZqZeeeUVlZWVtfYUAAAAoB0xTNM0rS4CAAAgnFasWKFRo0ZJkv7nf/5H55xzjm655RZVVFTUu/3ZZ5+tjz76SD169Ki3fd26dZo0aZL2798f8D1dLpeef/553XLLLfW2f/vttxo7dqx27tzZaP1vvfWWJk+e3Oh2AAAAgCRFWV0AAACAldavX69Zs2apurpaGRkZSk9PV3x8vLZu3aq//e1vysvL09dff61Ro0Zp48aNSkxMrLX/pk2bNGrUKJWXl0uSBgwYoBtuuEG9evVSYWGh3n33XX3yySeqqKjQtGnTZJqmpk2bVqeOyZMn+8O/s88+W9dcc4169OihxMRElZSUaMeOHVq5cqW++OKL0J8UAAAA2AozAAEAQLtz8gxA6fjsvA8++EAjR46std3Ro0d1xRVX6PPPP5ck3XHHHXrxxRf97T6fT4MHD9aWLVskSbfeeqv+/Oc/Kyqq9mesf/3rX3XbbbfJNE25XC5t3bpVPXv29Ld/+eWXGjZsmCTpmmuu0YIFC+Rw1H+lln379sk0zVr7AwAAAA3hGoAAAKDdmzVrVp3wT5KSkpL01ltvqUOHDpKkV155RYcPH/a3f/DBB/7w77zzztOLL75YJ/yTpGnTpumOO+6QJFVUVGjOnDm12nfv3u1/ftNNNwUM/ySpR48ehH8AAABoFgJAAADQriUlJem2224L2H7mmWdqypQpko7fpOO9997zty1atMj//Fe/+pWcTmfAfh544AEZhlFnP0lyu93+5+vXr2/eAQAAAACNIAAEAADt2iWXXKK4uLgGt7nsssv8z0++Bt/atWv9zy+//PIG++jRo4fOPvtsSVJubq7y8vL8bRdffLFcLpck6dFHH9V9992njRs3iiu1AAAAIBgIAAEAQLvWr1+/Zm1z8OBB//MTIV5CQoJOP/30Rvs566yz6uwrSSkpKZozZ44cDodqamo0Z84cDR06VJ07d9ZVV12l3//+99q4cWOTjgcAAAA4FQEgAABo105eftuUbUpLS+s8b0ofkvzXEjy1H+n4DUQ+++wzXX755f5rAB45ckTvv/++HnjgAQ0dOlTnnXeelixZ0qT3AgAAAE4gAAQAAO1aeXl5s7ZJSEio87wpfUhSWVlZvf2ccMkll+jjjz9WQUGBcnJy9P/9f/+fLrnkEv+NRTZv3qwrrrhCr7zySpPeDwAAAJAIAAEAQDt38h14m7JN165d/c/POOMMScdn83333XeN9rNz5856+zlVcnKyrrrqKj355JNatWqVDh48qLvvvtvf/qtf/UrV1dWNvh8AAAAgEQACAIB2btWqVaqqqmpwm3/+85/+5xdeeGG9zz/55JMG+8jNzdXXX38tSerevXuTrhl4QufOnfX8889r8ODBkqTCwkJt3bq1yfsDAACgfSMABAAA7drRo0c1d+7cgO15eXmaN2+eJCk2Nlbjxo3zt02aNMn//Omnn5bX6w3Yz+9//3v/XX1P3q85evXq5X9eU1PToj4AAADQ/hAAAgCAdu///b//p5UrV9Z5vaSkRNdee63/hh0333yzOnfu7G+/4oordO6550qS/vWvf+kXv/hFvcHcK6+8ohdffFGS5HK5dO+999Zqnzdvnv761782eC3BnTt3atmyZZKkuLg49e/fv5lHCQAAgPYqyuoCAAAArDRu3DgtXbpUo0eP1s9+9jOlp6crPj5e27Zt01//+lcdPHhQ0vHZd7///e9r7etwOJSdna0RI0aovLxcL7/8sj7//HPdcMMN6tmzpwoLC7V48WJ99NFH/n2ee+459ejRo1Y/u3bt0iOPPKJ77rlHl112mYYNG6bu3bsrPj5ehw8f1hdffKG3337bHxDec8899d5EBAAAAKiPYZ5YiwIAANBOrFixQqNGjZIk/c///I8GDBigm2++WRUVFfVu379/f3300Ufq2bNnve3r1q3T1VdfrQMHDgR8T5fLpeeee07Tpk2r0/bII49o5syZjdZtGIbuvPNOzZkzR06ns9HtAQAAAIkZgAAAALr22ms1ePBgPf/88/rkk0/073//W9HR0erfv7+uu+463XXXXYqNjQ24/7Bhw7Rz507NnTtXixcv1pYtW1RYWKgOHTqod+/eGjNmjO66666Ad/6dMWOGRo0apeXLl+uLL77Qjh07lJeXp2PHjvn7uPjii3XLLbdoyJAhoToNAAAAsClmAAIAgHbn1BmATZl9BwAAALRV3AQEAAAAAAAAsDECQAAAAAAAAMDGCAABAAAAAAAAGyMABAAAAAAAAGyMABAAAAAAAACwMe4CDAAAAAAAANgYMwABAAAAAAAAGyMABAAAAAAAAGyMABAAAAAAAACwMQJAAAAAAAAAwMYIAAEAAAAAAAAbIwAEAAAAAAAAbIwAEAAAAAAAALAxAkAAAAAAAADAxggAAQAAAAAAABsjAAQAAAAAAABsjAAQAAAAAAAAsDECQAAAAAAAAMDGCAABAAAAAAAAGyMABAAAAAAAAGyMABAAAAAAAACwMQJAAAAAAAAAwMYIAAEAAAAAAAAbIwAEAAAAAAAAbIwAEAAAAAAAALAxAkAAAAAAAADAxggAAQAAAAAAABsjAAQAAAAAAABsjAAQAAAAAAAAsDECQAAAAAAAAMDGCAABAAAAAAAAG/v/ASmJDz0wAyRiAAAAAElFTkSuQmCC",
      "text/plain": [
       "<Figure size 640x480 with 2 Axes>"
      ]
     },
     "metadata": {
      "image/png": {
       "height": 480,
       "width": 640
      }
     },
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "\n"
     ]
    }
   ],
   "source": [
    "df[\"layer\"] = df[\"layer\"].astype(\"category\")\n",
    "df[\"token\"] = df[\"token\"].astype(\"category\")\n",
    "nodes = []\n",
    "for l in range(gpt.config.n_layer - 1, -1, -1):\n",
    "    nodes.append(f\"f{l}\")\n",
    "    nodes.append(f\"a{l}\")\n",
    "df[\"layer\"] = pd.Categorical(df[\"layer\"], categories=nodes[::-1], ordered=True)\n",
    "\n",
    "g = (\n",
    "    ggplot(df)\n",
    "    + geom_tile(aes(x=\"pos\", y=\"layer\", fill=\"prob\", color=\"prob\"))\n",
    "    + facet_wrap(\"~token\")\n",
    "    + theme(axis_text_x=element_text(rotation=90))\n",
    ")\n",
    "print(g)"
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3 (ipykernel)",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.8.12"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 5
}
